• 问题

    要区分设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部其他模块而言,是否隐藏其内部数据和其他细节。设计良好的模块会隐藏所有的实现细节,把它的API于它的实现清晰的隔离起来,模块之间只通过它们的API进行通信,那么,在设计类和成员时有怎样的设计原则?

  • 解决

    设计类和成员有这样几个基本原则:

    1. 尽可能使每个类或者成员不被外界访问,应该使用与你正在编写的软件的对应功能相一致的、尽可能最小的访问级别;对于成员(域、方法、嵌套类或者嵌套接口)有四种访问级别:1. private--在该类中私有访问;2. 默认级别--包级访问;3. protected访问级别--该类的子类或者包类所有类均可访问到;4.public--在任何地方均可访问到;
    2. 如果类中覆盖了父类中的方法,那么子类中的访问级别不得低于父类中的访问级别,这样就可以保证在任何使用到父类实例的地方可以继续使用子类。如果一个类实现了某接口,那么在类中所有的接口的方法都必须是public的;
    3. 实例域决不能是公有的,如何非final实例域指向了可变对象,并且该实例域为public的话,那么包含该实例域的类就是线程不安全的;
  • 总结

    总之,在设计类和成员时,应该尽可能的降低可访问性,除了公有静态final域的特殊情形之外,公有类都不应该包含公有域,并且要确保公有的静态final域所引用的对象是不可变的。

results matching ""

    No results matching ""